<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>内置对象</title>
</head>
<script>
    /*
        Math
    */
   // 产生一个随机数[0,1)
    console.log(Math.random());
    console.log(Math.random()*10);
    
    /*
        日期Date
    */
   // 不传参获取的是当前时间
   var today = new Date();
   console.log(today);
   console.log(today.getFullYear());
   // getMonth() 获取的月份是从0--11
   console.log(today.getMonth() + 1);
   // 日
   console.log(today.getDate())
   // 周几
   console.log(today.getDay());
   // 获取毫秒数
   console.log(today.getTime());
   
   
   
   // 传参表示指定时间
   var pointDay = new Date('2000/5/3');
   console.log(pointDay);

   //检测数据类型
   var arr = [];
   var obj = {};
   console.log(typeof arr);  // obj
   console.log(typeof obj);

   /*
     判断是否是数组
   */
   // instanceof 判断对象是否是某个构造函数的实例
   //对象名  instanceof 实例
   console.log(arr instanceof Array); // true
   console.log(arr instanceof Object); // true
   console.log(obj instanceof Object); // true
   console.log(obj instanceof Array); // false

   // Array.isArray()
   console.log(Array.isArray(obj));   // false
   console.log(Array.isArray(arr));  // true
   
   // 添加一个元素
   arr[arr.length] = '沙乌地阿拉伯';
   arr.push('中国');
   arr.unshift('大日本帝国');
   // 删除
//    arr.pop();
//    arr.shift();
   console.log(arr);

   // 颠倒顺序
   arr.reverse();
   console.log(arr);

   // 排序
   var numArr = [5,6,4,7,9,1,22];
   // 升序
   numArr.sort(function(a,b){
       return a - b;
   });
   console.log(numArr);
   // 降序
   numArr.sort(function(a,b){
       return b - a
   })
   console.log(numArr);

   var ageArr = [26,25,21,17,27,19];
   ageArr.sort(function(a,b) {
       return b-a
   })
   console.log('最大值：'+ageArr[0])
   console.log('最小值：'+ageArr[ageArr.length -1])


   // 获取某个国家的索引值
   console.log(arr.indexOf('中国'));
   console.log(arr.indexOf('英国')); // 不存在就返回 -1
   arr.push('大韩民国');
   arr.push('泰国');
   arr.push('泰国');
   arr.push('英国');
   arr.push('大韩民国');
  
   console.log(arr);
   console.log(arr.indexOf('泰国'));
   // 返回最后一次出现的位置
   console.log(arr.lastIndexOf('大韩民国'));

   // 数组去重
   var wordArr = ['c', 'a', 'z', 'a', 'x', 'a', 'x', 'c', 'b'];
//    function deleComm(arr){
//        var newArr = [];
//        for(var i = 0;i<arr.length;i++){
//            if(newArr.indexOf(arr[i]) === -1){
//                newArr.push(arr[i])
//            }
//        }
//        return newArr;
//    }
//    console.log(deleComm(wordArr));

function deleFComm(arr){
    var newArr = [];
    for(var i =0;i<arr.length;i++){
        if(newArr.indexOf(arr[i]) === -1){
            newArr.push(arr[i])
        }
    }
    return newArr;
}
console.log('去重后的数组为：'+deleFComm(wordArr));

// toString()不会改变原数组
console.log(arr.toString());
console.log(arr);
 
var local = ['中国','成都','高新区','环球中心'];
// 分隔符拼接
console.log(local.join('-'));

// 2020-8-3
// 获取时间
var time = new Date();
var timeArr = [];
timeArr.push(time.getFullYear());
timeArr.push(time.getMonth() +1);
timeArr.push(time.getDate());
console.log(timeArr);

console.log(timeArr.join('/'));

// 返回索引，字符串,下标从0开始
var str = '我们去大n草原的m湖边，看候鸟s飞回来！nmsl';
console.log(str.indexOf('草'));   // 4
console.log(str.indexOf('当'));  // -1
console.log(str.lastIndexOf('s')); // 22
console.log(str.length);

console.log(str.charAt(8)); // 给索引，返回值
var author = '谭,维维';
// 字符串拼接
console.log(str.concat(author));

console.log(author.substr(1));
// 截取，参数1，下标，长度   
console.log(str.substr(12,3)); 
// [下标，下标)
console.log(str.slice(1,5));
console.log(str.slice(-3,-1));
// [下标，下标)
console.log(str.substring(2,6))
console.log(str.replace('m','s'));
// console.log(str.replaceAll('m','s'))
console.log(str);
// 以什么标准分割
console.log(author.split(','));



/*
    练习
*/
console.log('-------------------');
var open = "改革春风吹满地,中国人民真争气";
console.log(open.concat(',宋丹丹'));
var openName = open.concat(',宋丹丹');
console.log(open.substr(2,2));
console.log(open.indexOf('中'));
console.log(open.indexOf('民'));
console.log(openName.split(','));

var a = 15;
var a = 14;
var a = {name:'123'};
console.log(a);

// //数组是引用数据类型
 //arr2的地址指向arr1的地址 arr2[0]=3,arr2[1]=4
//arr2[0] 取数组arr2中的第一项 等于此时是 基本数据类型赋值 所以 arr2[0]等1同时 arr1也该百改变为1
//arr2 开辟了一个新的内存 arr2[0]= 4 arr2[1]=5
//arr2[1]=2 arr2[0]=4
//arr1[0]=1 arr1[1]=0

var arr1 = [3,4]   
var arr2 = arr1   
arr2[0]=1;         
arr2 = [4,5]       
arr2[1]=2          
arr1[1]=0          
console.log(arr1,arr2)


var a = {n: 1}
var b = a
a.x = a = {n: 2}

console.log(a.n) 
console.log(b.n) 
console.log(a) 
console.log(b) 
console.log(a.x) 
console.log(b.x) 
</script>
<body>
    
</body>
</html>